MIDIFILE TO CSOUND CONVERTER - V 0.92 (C) SONGLAB 1995 shareware developed by dipl.-ing ruediger borrmann Read this manual if the following topics seem to be interesting! CSOUND, SCORE, ORCHESTRA, COMPOSER, COMPOSING, MUSIC PRODUCTION, PRODUCER, ELECTRONIC MUSIC, MIDI, MIDIFILE, SEQUENCER, COMPUTER MUSIC, HOME RECORDING, SAMPLING, STUDIO, CD-AUDIO, PC, SOUNDCARD, WAV, AIFF Table of content Introduction Files Composing and producing music Installation Usage Options Projectfiles Tips & Tricks Known Bugs & Additional Features Tip Plans for the future License Agreement Shareware Registration About the author Introduction Csound is one of the worlds most important audio processing systems. The system was developed at the Media Lab of the famous Massachusetts Institute of Technology by Barry L. Vercoe. The PC version is available by anonymous ftp in directory ftp://ftp.maths.bath.ac.uk/pub/dream. There you will find lots of informations about the Csound system and its use. Nowadays you are able to run Csound on a PC to create high quality music productions, but using Csound is still difficult for starters. You need to know lots of things before any result is worth listening to. MIDI2CS solves the problem for anyone who likes to work with sequencers and midifiles while composing music. MIDI2CS is the solution to create best documentated Csound scores from any midifile on the fly. This will save lots of your time and money in producing music in professional quality. Using Csound does not seem to be a waste of time anymore. MIDI2CS is fully independent from Csound and should run on any PC under DOS or in a DOS Windows under MS-Windows. Users of Csound on other than PC-platforms are able to run MIDI2CS on PCs without an installed Csound version. MIDI2CS does not contain any part of Csound software and therefore does not touch any copyright. Files MIDI2CS EXE 78,181 - the program CS BAT 51 - my csound batch file 091 BAT 281 - usage of version 0.91 just call it ! 092 BAT 19 - usage of version 0.92 just call it ! CPS BAT 19 - creating cps-scores just call it ! 092 PRO 1,040 - used by 092.bat FATIMA PRO 841 - used by 092.bat CPS PRO 1,036 - used by cps.bat FATIMA MID 40,578 - an example midifile FATIMA TXT 413 - fatima.mid copyright FATIMA HDR 1,513 - fatima scoreheader FATIMA ORC 1,436 - fatima orchestra example MIDI2CS WRI 21,632 - manual etc. MIDI2CS TXT 23,287 - ascii manual Composing and producing music Composing and producing music in my view are two different things. Composing music can be done with cheapest equipment with cheapest keyboards and sequencers. You really do not have to invest thousands of dollars to build your homestudio. The result will be a combination of cheap sounds and noone but you expects that it will be a powerful record someday. You are working in realtime and you will have no difficulties to compose your song in a reasonable time. The result of your work as a composer should be a midifile! Producing music means much more than composing songs. You will have to look out for best sounds and effects to get the maximum out of your composition. You will have to find the best studio and the best equipment. You will have to produce the maximum of dynamics. If you do not have the knowledge you have to pay a good producer for doing this work. This time is over if you do not expect to make everything in realtime. Best effects will take a while for processing on a PC, but it's worth it. Following PC generations will make the processing faster and faster. In my view it really does not matter anymore. MIDI2CS now gives you the opportunity to be your own producer. You need a computer with an installed Csound system and a program to play the created soundfiles. If you invest in a good soundcard or a digital output to your DAT noone will be able to beat the quality of your production! Installation You just have to copy the executable file of MIDI2CS.EXE into your utility directory. That should do. Usage The easiest command if you name your midifile midi2cs.mid is midi2cs Of course MIDI2CS supports any filename if you do not want to rename it. midi2cs "name of your midifile" These commands will create full MIDI2CS default scores from the first to the last bar of the midifile containing all tracks. MIDI2CS versions up from v0.92 are able to write variable parameters in variable successions. Using only the name of the midifile means to write the default values which are the seven parameters instrument, start, duration, pitch, midinote, midivelocity and midirelease. If you would like to change the succession of the default parameters you will have to configure your project file. Its default name is midi2cs.pro. If you would like to make simple modifications to the resulting score, you can do that by using options. midi2cs [options] "name of midifile" If you are an experienced user you should configure the projectfile and type midi2cs -r"name of the projectfile" If your projectfile is named midi2cs.pro you just have to type midi2cs Options -a The output will not overwrite an existing scorefile. It will be appended. -b# If you do not want to convert the whole midifile you can specify the first track you'd like to convert e.g. -b25 means begin with track 25. -d#,#[,#,#]... If you have a single instrument that should have a fixed duration you are able to specify the duration by typing e.g. -d3,2500,5,350. This means that all notes of track 3 will have the length 2.5 seconds and all notes of track 5 will have a duration of 0.35 seconds. -e# If you do not want to convert the whole midifile you can specify the last track you'd like to convert e.g. -e30. This means that the last bar will be track 30. -f"filename" Csound scores often consist of a part with function declarations and other specific stuff. This part can be included as a file by default. E.g. by typing -fdummy.hdr -i#,#[,#,#]... If you like to give each track a specific instrument number you should use this option to assign it. E.g. -i4,23,8,9 assigns instrument number 23 to track 4 and instrument number 9 to track 8. -l If you do not like too much chat and comments inside your scorefile use this option. It will supress most of the unneccessary text. -o"filename" This option is useful to assign the name of the scorefile. E.g. -odummy.sco creates the score dummy.sco -p#,#[,#,#]... Drumtracks sometimes need just the 3 parameters instr, start and duration. If you use this option you can suppress the writing of unneccessary parameters. E.g. -p7,4,3,3 causes that track 7 will have 4 of the default parameters and track 3 just the minimum of 3. -r"filename" This option is one the most powerful option of MIDI2CS and new to v0.92. If you type -rproject.pro it will read the projectfile. Any syntax errors will be printed out to the screen. See the description of the syntax in chapter projectfile. -s#[,#]... If you do not want to write all tracks as score you can select some of them by typing e.g. -s3,6,12. Only tracks 3,6 and 12 will be written. -t#,#[,#,#]... If you like to transpose tracks this option helps you to do this easily. E.g. type -t3,5,7,-7 transposes all notes of track 3 5 halftones and all notes of track 7 -7 halftones. The following options will give you some online information if you do not have this manual by hand. You do not need to type the name of a midifile for the following options. Online help is available by typing midi2cs -h (elp) midi2cs -? Known bugs and additional features of the new version by typing midi2cs -k (nown bugs) The following option explains why MIDI2CS is shareware midi2cs -w (hy is this shareware) Project files ; --- MIDI2CS PROJECT FILE --- ; - this default projectfile is identical to default options - ; - written automatically if it does not exist by calling midi2cs - ; --- MIDIFILE GLOBAL VALUES SECTION --- scoreheader midi2cs.hdr ; file to be included (readonly) nameofscore midi2cs.sco ; score output (will be written) ; nameoforc midi2cs.orc ; future extension not realized yet midifile midi2cs.mid ; - all tracks will be initialized by the following values - firstbar 0 lastbar 10000 ; notrackselected ; duration 1000 ; transpose 0 ; lesscomments ; - define default parameters and succession - p_pch p_midinote p_midivelocity p_midirelease ; p_cps midi2cs.cps ; p_maxamplitude 32000 ; p_fixeddB -6 ; --- MIDITRACK SECTION --- ; - define individiual values for each track - miditrack 1 ; instrument 1 ; name dummy1 score ; all score parameters and order are optional ; firstbar 0 ; lastbar 10000 ; duration 1000 ; fixed duration in milliseconds ; transpose 0 ; --- parameters and succession --- ; p_pch ; p_midinote ; p_midivelocity ; p_midirelease ; p_maxamplitude ; p_fixeddB -6 ; p_cps midi2cs.cps ; - if you want to use default parameters set limit with parameters - ; parameters 10 ; parameters has to be the last entry ; in the score section (instr + start + ; duration + the defined parameters) endscore ; separator endtrack endofproject CPS-Files You want your own scales ? No problem. Create a file like the following example and configure your projectfile. Each track can have its own CPS-table! ; MIDI2CS - well tempered cycles per second ; uncomplete internal table of MIDI2CS v0.92 ; midibyte cyclespersecond note 000 30 ; C-2 001 30 ; C#-2 002 30 ; D-2 003 30 ; D#-2 004 30 ; E-2 005 30 ; F-2 006 30 ; F#-2 007 30 ; G-2 008 30 ; G#-2 009 30 ; A-2 010 30 ; A#-2 011 30 ; B-2 012 30 ; C-1 013 30 ; C#-1 014 30 ; D-1 015 30 ; D#-1 016 30 ; E-1 017 30 ; F-1 018 30 ; F#-1 019 30 ; G-1 020 30 ; G#-1 021 30 ; A-1 022 30 ; A#-1 023 30 ; B-1 024 30 ; C0 025 30 ; C#0 026 30 ; D0 027 30 ; D#0 028 30 ; E0 029 30 ; F0 030 30 ; F#0 031 30 ; G0 032 30 ; G#0 033 30 ; A0 034 30 ; A#0 035 30 ; B0 036 65.41 ; C1 037 69.29 ; C#1 038 73.41 ; D1 039 77.78 ; D#1 040 82.4 ; E1 041 87.31 ; F1 042 92.49 ; F#1 043 97.99 ; G1 044 103.8 ; G#1 045 110 ; A1 046 116.5 ; A#1 047 123.5 ; B1 048 130.8 ; C2 049 138.6 ; C#2 050 146.8 ; D2 051 155.6 ; D#2 052 164.8 ; E2 053 174.6 ; F2 054 185 ; F#2 055 196 ; G2 056 207.6 ; G#2 057 220 ; A2 058 233.1 ; A#2 059 246.9 ; B2 060 261.6 ; C3 061 277.2 ; C#3 062 293.7 ; D3 063 311.1 ; D#3 064 329.6 ; E3 065 349.2 ; F3 066 370 ; F#3 067 392 ; G3 068 415.3 ; G#3 069 440 ; A3 070 466.1 ; A#3 071 493.9 ; B3 072 523.3 ; C4 073 554.3 ; C#4 074 587.3 ; D4 075 622.3 ; D#4 076 659.2 ; E4 077 698.4 ; F4 078 739.9 ; F#4 079 783.9 ; G4 080 830.6 ; G#4 081 880 ; A4 082 932.3 ; A#4 083 987.7 ; B4 084 1047 ; C5 085 1109 ; C#5 086 1175 ; D5 087 1245 ; D#5 088 1318 ; E5 089 1397 ; F5 090 1480 ; F#5 091 1568 ; G5 092 1661 ; G#5 093 1760 ; A5 094 1865 ; A#5 095 1975 ; B5 096 2093 ; C6 097 3000 ; C#6 098 3000 ; D6 099 3000 ; D#6 100 3000 ; E6 101 3000 ; F6 102 3000 ; F#6 103 3000 ; G6 104 3000 ; G#6 105 3000 ; A6 106 3000 ; A#6 107 3000 ; B6 108 3000 ; C7 109 3000 ; C#7 110 3000 ; D7 111 3000 ; D#7 112 3000 ; E7 113 3000 ; F7 114 3000 ; F#7 115 3000 ; G7 116 3000 ; G#7 117 3000 ; A7 118 3000 ; A#7 119 3000 ; B7 120 3000 ; C8 121 3000 ; C#8 122 3000 ; D8 123 3000 ; D#8 124 3000 ; E8 125 3000 ; F8 126 3000 ; F#8 127 3000 ; G8 Tips&Tricks TIP 1: Use version 0.92 and the powerful projectfile !! Nothing to edit anymore afterwards. The score should be perfect. Otherwise your projectfile seems not to be configured right. TIP 2: Using Csound Csound commandlines can be complicated. So if you do not like to think of options and typing them you should write yourself a batch file. My Csound batchfile is named cs.bat and contains the following two lines: echo off csound -d -H -W -o %1.wav %1.orc %1.sco Csound writes the default WAV file into the sampledirectory. It will have the same prefix the score and the orchestra files have. e.g. cs "prefix of score and orcfile" TIP 3: Working with version 0.91 You can use lots of options if you e.g. are writing a batch file that does the following. You will have to edit the created score a little bit afterwards. rem 6 Bass midi2cs -b34 -e51 -l -s6 -i6,20 -p6,4 -ffatima.hdr fatima.mid rem 7 Bassdrum midi2cs -a -b34 -e51 -l -s7 -d7,800 -i7,1 -p7,3 fatima.mid rem 8 Snare midi2cs -a -b34 -e51 -l -s8 -d8,1000 -i8,2 -p8,3 fatima.mid rem 9 Hihat midi2cs -a -b34 -e51 -l -s9 -d9,190 -i9,3 -p9,3 fatima.mid rem 1 Juno midi2cs -a -b34 -e51 -l -s1 -i1,21 -p1,4 fatima.mid rem 3 Strings midi2cs -a -b34 -e51 -l -s3 -i3,21 -p3,4 fatima.mid rem 5 Sequence midi2cs -a -b34 -e51 -l -s5 -i5,21 -p5,4 fatima.mid Known bugs and additional features New Features v0.92 a) New power option -r is supported (project file midi2cs.pro) !!! b) Variable parameters and succession depending on project file c) Printing midinotes as cps depending on project file and cps file d) Option -k is working e) Extended General MIDI comments for sound switches f) Append function deletes last e (end of score) g) Time statement t is just a comment now, put it in your headerfile! h) All default files have the prefix midi2cs now (midi2cs.sco, midi2cs.orc) i) Reading from default midifile midi2cs.mid if exists j) Reading from default project file midi2cs.pro if exists k) Some other little things to make everything more comfortable l) Option 'n' - not supported anymore Take option "notracksselected" in your default projectfile Assumed Bugs a) The default table with midivalues to cps values is not o.k yet Known Bugs a) Midi format 0 seems to be not as good supported as format 1 b) The tempo statement (t 0 ...) seems to be not calculated o.k. yet Therefore I write it as a comment. Put it into your headerfile. Plans for the future Maybe the final result of MIDI2CS v1.0r ... a) will have the full functionality to write several scores and sample-orchestras with specified default effects automatically. There will be no necessity to edit something afterwards in scores or orchestras so that Csound is able to calculate the soundfile. When this result is reached the implementation of the following points begins. b) there will be an additional windows desktop version. c) the windows desktop version will support the configuration of projectfiles with a lot of configuration menues. These will be easy to handle. d) the windows desktop version will be able to trigger Csound to create WAV files. e) the windows desktop version will be able to play the created WAV-files. f) If there is interest, I will create a Linux version of MIDI2CS of the last DOS version of MIDI2CS. g) If there is interest, a MAC version will be created of the last DOS version of MIDI2CS. I hope that lots of people are interested in the development of this music production tool. The development and release of new versions will continue in dependence of the number of registered users. Send questions, comments, suggestions for further development, not working midifiles and anything useful to SONGLAB. License Agreement This is a legal agreement to which you are consenting to be bound. If you do not agree to all of the terms of this license, do not use the software. 1. SONLAB grants to registered users a non-exclusive, non-sublicensable, unlimited license to use this version of MIDI2CS in binary executable form. Unregistered users will have the right to use this software for trial and evaluation use purposes and for educational and research purposes only. If you want to become your own producer this is commercial usage and you should register MIDI2CS. The unregistered version of MIDI2CS will delete itself in december 1995. 2. SONGLAB makes no representations about the suitability of this software or about any content or information made accessible by the software, for any purpose. The software is provided 'as is' without express or implied warranties, including warranties of merchantability and fitness for a particular purpose or noninfringement. SONGLAB shall not be liable under any theory or any damages suffered by you or any user of the software. 3. All content accessed through the Software is the property of the applicable content owner and may be protected by applicable copyright law. This License gives you no rights to such content. 4. While SONGLAB intends to distribute a version 1.0 release of MIDI2CS SONGLAB reserves the right at any time not to release this or, if released, to alter prices, features, specifications, capabilities, functions, licensing terms, release dates, general availability or other characteristics of the release. 5. Title, ownership rights, and intellectual property rights in and to the Software shall remain in SONGLAB and/or its suppliers. You acknowledge that the Software in source code form remains a confidential trade secret of SONGLAB and/or its suppliers and therefore you agree not to modify the Software or attempt to decipher, decompile, disassemble or reverse engineer the Software, except to the extent applicable laws specifically prohibit such restriction. 6. This License is personal to you and you agree not to assign your rights herein. SONGLAB is a trademark of SONGLAB Copyright (c) 1995 SONGLAB All rights reserved Shareware MIDI2CS will save lots of your time. Now you are able to compose your Csound works with a sequencer and map your midi files on the fly to best documentated csound scores. It gives me lots of motivation to see that people need this program as I do and are willing to participate in the process of development. Registration of this program will give you a high influence of what midi2cs v1.0 will be able to do when it is released. The use of v0.92u (u stands for unregistered version) is limited to the end of november 1995. I think it's worth the price if I only charge you one hour of my work and that's US $50 or DM 75. Please register. Registration Write a letter to SONGLAB, R.Borrmann, Bonhoefferufer 13, 10589 Berlin with your address and a cheque of $50 or DM75. I will send you a personal registered copy of the latest MIDI2CS.EXE on disc with current documentation and maybe other helpful tools that are in development now. Registered users will receive all new versions of MIDI2CS that contain major changes until MIDI2CS v1.0r is finished. About the author The author of MIDI2CS Dipl.-Ing. Rdiger Borrmann is an independent composer and music producer. Since 1989 he works as an employed software developer at Sietec Systemtechnik in the development of archive and information systems and WWW. He is married, has one child and lives in the middle of Berlin. The thirty four years old musician began playing guitar when he was fourteen. He founded several bands. After school he studied at the Technical University of Berlin from 1982-88 to become an electrical engineer. During his studies his music changed from handmade rock music to electronic based music. He learned a lot about programming computers and electronic music and had the opportunity to work in the field of synthsizers and MIDI to finish his degree. In 1991 he founded his own label SONGLAB which always seemed to be more a hobby than a real possibility of income. He spent more than DM 100.000 in studios to produce his music and studied the music producers work. Some records were produced that did not become hits but are good as hell as he would pretend. In 1994 he decided to build an own studio and bought a PC based harddisk recording system for SONGLAB. To complete his home studio that should produce better results than any of the expensive studios in the city he began to work with Csound and the development of MIDI2CS.